It is known that in the messaging environment provided by WebSphere® MQ Messaging Software from IBM®, messages are commonly identified by a system generated Message Identifier and a user generated Correlation Identifier. Programs connecting to the messaging system are allocated a handle (e.g., ‘hConn’, a common handle to a server connection) through which they reference the messaging system and optionally a Connection Identifier that can be used by a third party to identify a specific connection. It is common for Message Identifiers and Correlation Identifiers to share the same name space, thus making it possible for the system generated Message Identifier in a request message to be copied into the Correlation Identifier of any corresponding response message. This design can present the user with the problem of generating Correlation Identifiers that are guaranteed not to clash with the system generated Message Identifiers.
From patent publication US2003/0041178A1 there is known a technique for routing messages between applications in which a message identifier and a session identifier are used. However, in this publication there is no relationship between these two identifiers.
It is relatively common for users to want to allocate a single unique identifier to correlate all messages associated with a single connection (for example so that a reply queue can be shared by multiple users), and one way to allocate such an identifier in WebSphere® MQ (formerly MQSeries™) Messaging Software from IBM® is to issue a pair of ‘MQPUT’ and ‘MQBACK’ calls, causing the system to generate a unique message identifier.
However, this approach has the disadvantage(s) that although issuing a ‘MQPUT/MQBACK’ call sequence causes the system to generate a unique message identifier, it causes the message with that identifier to never be visible outside the connection issuing the calls.
A need therefore exists for a system and method for messaging wherein the abovementioned disadvantage(s) may be alleviated.